gdksurface-win32.c: Deal with modal and decoration props
authorChun-wei Fan <fanchunwei@src.gnome.org>
Mon, 27 Jul 2020 08:59:05 +0000 (16:59 +0800)
committerChun-wei Fan <fanchunwei@src.gnome.org>
Fri, 31 Jul 2020 15:19:28 +0000 (23:19 +0800)
Handle these cases, especially the modal case, which we did not handle
previously after the conversion to surface subtypes.

gdk/win32/gdksurface-win32.c

index af5a61cf47a4b0c2d2043cb434494372d7ccac5a..fc52a82a5a7760397c4648464ea75cd2ce594926 100644 (file)
@@ -4825,10 +4825,16 @@ gdk_win32_toplevel_set_property (GObject      *object,
       g_object_notify_by_pspec (G_OBJECT (surface), pspec);
       break;
 
+    case LAST_PROP + GDK_TOPLEVEL_PROP_MODAL:
+      _gdk_push_modal_window (surface);
+      break;
+
     case LAST_PROP + GDK_TOPLEVEL_PROP_ICON_LIST:
       break;
 
     case LAST_PROP + GDK_TOPLEVEL_PROP_DECORATED:
+      _gdk_win32_surface_update_style_bits (surface);
+      g_object_notify_by_pspec (G_OBJECT (surface), pspec);
       break;
 
     case LAST_PROP + GDK_TOPLEVEL_PROP_DELETABLE:
@@ -4863,22 +4869,27 @@ gdk_win32_toplevel_get_property (GObject    *object,
       break;
 
     case LAST_PROP + GDK_TOPLEVEL_PROP_TITLE:
-      g_value_set_string (value, "");
       break;
 
     case LAST_PROP + GDK_TOPLEVEL_PROP_STARTUP_ID:
-      g_value_set_string (value, "");
       break;
 
     case LAST_PROP + GDK_TOPLEVEL_PROP_TRANSIENT_FOR:
       g_value_set_object (value, surface->transient_for);
       break;
 
+    case LAST_PROP + GDK_TOPLEVEL_PROP_MODAL:
+      break;
+
     case LAST_PROP + GDK_TOPLEVEL_PROP_ICON_LIST:
       g_value_set_pointer (value, NULL);
       break;
 
     case LAST_PROP + GDK_TOPLEVEL_PROP_DECORATED:
+      {
+        GdkWMDecoration decorations = GDK_DECOR_ALL;
+        g_value_set_boolean (value, get_effective_window_decorations (surface, &decorations));
+      }
       break;
 
     case LAST_PROP + GDK_TOPLEVEL_PROP_DELETABLE: